██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Advanced Encryption Standard
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
In mwbqcrittografia, lmwbg'mwbwAdvanced Encryption Standard (mwcaAES), conosciuto anche come mwcqRijndael ([ˈrɛindaːl]),cite-ref-rijndael-1-0[1]cite-ref-rijndael-ammended-pdf-2-0[2] di cui più propriamente è una specifica mwewimplementazione,cite-ref-rijndael-ammended-pdf-2-1[2] è un mwgaalgoritmo di mwgqcifratura a blocchi a mwggchiave simmetrica, utilizzato come mwgwstandard dal governo degli mwhaStati Uniti d'America.
Data la sua sicurezza e le sue specifiche pubbliche si presume che in un prossimo futuro venga utilizzato in tutto il mondo come è successo al suo predecessore, il mwhgData Encryption Standard (DES) che ha perso poi efficacia per vulnerabilità intrinseche. AES è stato adottato dalla mwhwNational Institute of Standards and Technology (NIST) e dalla US mwiaFIPS PUB nel novembre del 2001cite-ref-fips-197-3-0[3] dopo cinque anni di studi, standardizzazioni e selezione finale tra i vari algoritmi proposti.
L'algoritmo scelto è stato sviluppato da due crittografi mwjgbelgi, mwjwJoan Daemen e mwkaVincent Rijmen, che lo hanno presentato al processo di selezione per l'AES con il nome di "Rijndael", derivato dai nomi degli inventori.
Contents
• SubBytes
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Descrizione
A differenza del DES, Rijndael è una mwlwrete a sostituzione e permutazione, non una mwmarete di Feistel, che implementa comunque il principio crittografico di Shannon di "mwmqconfusione e diffusione". AES è veloce sia se sviluppato in mwmgsoftware sia se sviluppato in mwmwhardware,cite-ref-4[4] è relativamente semplice da implementare, richiede poca mwoamemoria e offre un buon livello di protezione, motivi che complessivamente l'hanno reso il preferito rispetto agli altri algoritmi proposti.
Il nuovo standard di cifratura sta sostituendo i precedenti standard e la sua diffusione continua ad aumentare. Formalmente, AES non è equivalente al Rijndael (sebbene nella pratica siano intercambiabili) dato che il Rijndael gestisce differenti mwogdimensioni di blocchi e di mwowchiavi. Nell'AES il blocco è invece di dimensione fissa (mwpa128 bit) e la chiave può essere di 128, 192 o mwpq256 bit mentre il Rijndael specifica solo che il blocco e la chiave devono essere un multiplo di mwpg32 bit con mwpw128 bit come minimo e mwqa256 bit come massimo.
AES opera utilizzando mwqgmatrici di mwqw 4 × × 4 {\displaystyle 4\times 4} mwrabyte chiamate stati (states). Quando l'algoritmo ha blocchi di mwrq128 bit in input, la matrice State ha 4 righe e 4 colonne; se il numero di blocchi in mwrginput diventa di mwrw32 bit più lungo, viene aggiunta una colonna allo State, e così via fino a mwsa256 bit. In pratica, si divide il numero di bit del blocco in input per 32 e il quoziente specifica il numero di colonne.
C'è un passaggio iniziale:
1. mwtaAddRoundKey – Ogni byte della tabella viene combinato con la chiave di sessione, che viene calcolata dal mwtqgestore delle chiavi.
Successivamente per cifrare sono previsti diversi round o cicli di processamento: ogni round (fase) dell'AES (eccetto l'ultimo) consiste dei seguenti quattro passaggi fondamentali che vengono denominati LAYERS:
1. mwuqSubBytes – Sostituzione non lineare di tutti i byte che vengono rimpiazzati secondo una specifica tabella.
2. mwuwShiftRows – Spostamento dei byte di un certo numero di posizioni dipendente dalla riga di appartenenza.
3. mwvqMixColumns – Combinazione dei byte con un'operazione lineare, i byte vengono trattati una colonna per volta.
4. mwvwAddRoundKey – Ogni byte della tabella viene combinato con la chiave di sessione, calcolata dal gestore delle chiavi.
Il numero di round o cicli di processamento/elaborazione crittografica dei quattro passaggi precedenti è 10 con l'ultimo round che salta il passaggio mwwqMixColumns. A seguito la descrizione di ogni singolo passaggio.
La fase di decifratura non è identica a quella di cifratura dal momento che i passaggi sono eseguiti in ordine inverso. Tuttavia, si può definire un cifrario inverso equivalente ai passi dell'algoritmo usato per la cifratura, usando la mwwwfunzione inversa a ogni step e un differente gestore delle chiavi. Funziona siccome il risultato non cambia quando si scambiano la fase di mwxaSubBytes con quella di mwxqShiftRows, e quella di mwxgMixColumns con una fase aggiuntiva di mwxwAddRoundKey.
SubBytes
Nel passaggio mwywSubBytes ogni byte della matrice viene modificato tramite la mwzaS-box a mwzq8 bit. Questa operazione provvede a fornire la mwzgnon linearità all'algoritmo.
La S-box utilizzata è derivata da una funzione inversa nel mwaacampo finito mwaqGF(mwag 2 8 {\displaystyle 2^{8}} ), conosciuta per avere delle ottime proprietà di non linearità. Per evitare un potenziale attacco basato sulle proprietà algebriche la S-box è costruita combinando la funzione inversa con una mwawtrasformazione affine mwbainvertibile. La S-box è stata scelta con cura per non possedere né mwbqpunti fissi né punti fissi opposti.
ShiftRows
Il passaggio mwcaShiftRows provvede a spostare le righe della matrice di un parametro, e dipende dal numero di riga. Nell'AES la prima riga resta invariata, la seconda viene spostata di un posto verso sinistra, la terza di due posti e la quarta di tre. In questo modo l'ultima colonna dei dati in ingresso andrà a formare la mwcqdiagonale della matrice in uscita (Rijndael utilizza invece un disegno leggermente diverso per via delle matrici di lunghezza non fissa).
Tutte le operazioni sono effettuate utilizzando l'indice della colonna mwcwmodulo il numero di colonne.
MixColumns
Il passaggio mwdgMixColumns prende i quattro byte di ogni colonna e li combina utilizzando una mwdwtrasformazione lineare invertibile. Utilizzati in congiunzione, mweaShiftRows e mweqMixColumns provvedono a far rispettare il criterio di mwegconfusione e diffusione nell'algoritmo (teoria di Shannon). Ogni colonna è trattata come un mwewpolinomio in GF(2mwfa8) e viene moltiplicata modulo mwfq x 4 + 1 {\displaystyle x^{4}+1} per un polinomio fisso mwfg c ( x ) = 3 x 3 + x 2 + x + 2 {\displaystyle c(x)=3x^{3}+x^{2}+x+2} .
AddRoundKey
Il passaggio mwgqAddRoundKey combina con uno mwggXOR la mwgwchiave di sessione con la matrice ottenuta dai passaggi precedenti (State). Una chiave di sessione viene ricavata dalla mwhachiave primaria ad ogni round (con dei passaggi più o meno semplici, per esempio uno mwhqshift di posizione dei bit) grazie al mwhggestore della chiave.
Sicurezza
La mwigNational Security Agency (NSA) segnalava che tutti i finalisti del processo di standardizzazione erano dotati di una sicurezza sufficiente per diventare l'AES, ma che fu scelto il Rijndael per via della sua flessibilità nel trattare chiavi di lunghezza diversa, per la sua semplicità di implementazione in mwiwhardware e in mwjasoftware e per le sue basse richieste di memoria, che ne consentono un'implementazione anche in dispositivi con scarse risorse come le mwjqsmart card.
L'AES può essere utilizzato per proteggere le mwjwinformazioni classificate: Per il livello SECRET è sufficiente una chiave a mwka128 bit, mentre per il livello TOP SECRET si consigliano chiavi a 192 o mwkq256 bit. Questo significa che per la prima volta il pubblico ha accesso a una tecnologia crittografica che la NSA ritiene adeguata per proteggere i documenti TOP SECRET. Si è discusso sulla necessità di utilizzare chiavi lunghe (192 o mwkg256 bit) per i documenti TOP SECRET. Alcuni ritengono che questo indichi che l'NSA ha individuato un potenziale attacco che potrebbe forzare una chiave relativamente corta (mwkw128 bit), mentre la maggior parte degli esperti ritiene che le raccomandazioni dell'NSA siano basate principalmente sul volersi garantire un elevato margine di sicurezza per i prossimi decenni contro un potenziale attacco esaustivo.
La maggior parte degli algoritmi crittografici viene forzata riducendo il numero di round. L'AES effettua dieci round per la chiave a mwlq128 bit, dodici round per la chiave a mwlg192 bit e quattordici round per la chiave a mwlw256 bit. Al 2006, i migliori attacchi sono riusciti a forzare l'AES con sette round e chiave di mwma128 bit, otto round e chiave di mwmq192 bit e nove round e chiave di mwmg256 bit.cite-ref-improved-5-0[5]
Alcuni crittografi hanno fatto notare che la differenza tra i round effettuati dall'AES e quelli massimi prima che l'algoritmo non sia più forzabile è ridotta (specialmente con chiavi corte). Questi temono che miglioramenti nelle tecniche di analisi possano permettere di forzare l'algoritmo senza verificare tutte le chiavi. Attualmente una mwoaricerca esaustiva è impraticabile: la chiave a mwoq128 bit produce mwog3,4×1038 mwowcombinazioni diverse. Uno dei migliori attacchi a forza bruta è stato svolto dal progetto mwpadistributed.net su una chiave a mwpq64 bit per l'algoritmo mwpgRC5; l'attacco ha impiegato quasi cinque anni, utilizzando il tempo libero di migliaia di mwpwCPU di volontari. Anche considerando che la potenza dei mwqacomputer aumenta nel tempo, servirà ancora molto tempo prima che una chiave da mwqq128 bit sia attaccabile con il metodo forza bruta. Molte banche mettono a disposizione per l'mwqghome banking dei propri clienti chiavi a mwqw256 bit, con il risultato che si ottiene una cifratura ben mwra 2 128 {\displaystyle 2^{128}} volte più sicura di quella a mwrq128 bit, sebbene quest'ultima possa considerarsi altamente sicura e invalicabile dai moderni PC.
Un altro dubbio riguardante l'AES deriva dalla sua struttura matematica. A differenza della maggior parte degli algoritmi a blocchi, per l'AES esiste un'approfondita descrizione matematicacite-ref-6[6]. Sebbene non sia mai stata utilizzata per condurre un attacco su misura, questo non esclude che in futuro questa descrizione non venga utilizzata per condurre un attacco basato sulle sue proprietà matematiche.
Nel 2002 l'attacco teorico chiamato mwtamwtqattacco XSL, annunciato da Nicolas Courtois e Josef Pieprzyk, ha mostrato un potenziale punto debole dell'AES (e di altri cifrari). Sebbene l'attacco sia matematicamente corretto, è impraticabile nella realtà per via dell'enorme tempo macchina richiesto per metterlo in pratica. Miglioramenti nell'attacco hanno ridotto il tempo macchina richiesto e quindi, in un futuro, questo attacco potrebbe diventare attuabile. Ultimamente, alcuni esperti hanno fatto delle osservazioni agli autori dell'attacco. Sembra che abbiano commesso degli errori teorici e che, in realtà, le loro stime siano ottimistiche. Allo stato attuale, la reale pericolosità dell'attacco XSL è un punto interrogativo. Comunque, attualmente, l'AES è considerato un algoritmo veloce e sicuro e gli attacchi fino a ora presentati si sono rivelati degli interessanti studi teorici, ma di scarsa utilità nella pratica.
In data 1º luglio 2009 è stato pubblicatocite-ref-7[7] un mwvwattacco correlato alla chiave migliore del mwwametodo forza bruta su tutti i round di AES-256 e AES-192. L'attacco in questione risulta comunque, per stessa ammissione degli autori (come chiarito nelle conclusioni dello studio), essere ancora solo teoricamente realizzabile e non dovrebbe influire in alcun modo sulla sicurezza delle odierne applicazioni che fanno uso di questo mwwqcifrario. A luglio del 2009, mwwgBruce Schneier affermò, con un articolo sul suo blog, che questa scoperta avrebbe potuto influire negativamente sulla scelta di AES come blocco costitutivo dell'mwwwalgoritmo di hash mwxaSHA-3, al tempo ancora in fase di definizionecite-ref-8[8].
Note
cite-note-rijndael-11. ↑ mwzw(mw0amw0qEN) mw0gmw0wRijndael, su mw1asearchsecurity.techtarget.com. mw1qURL consultato il 9 marzo 2015 mw1g(archiviato dall'mw1wurl originale il 12 marzo 2015).
cite-note-rijndael-ammended-pdf-22. ↑ mw3q(mw3gmw3wEN) Joan Daemen e Vincent Rijmen, mw4amw4qAES Proposal: Rijndael (mw4gmw4wPDF), su mw5acsrc.nist.gov, National Institute of Standards and Technology, 9 marzo 2003, p.mw5q 1. mw5gURL consultato il 21 febbraio 2013 mw5w(archiviato dall'mw6aurl originale il 5 marzo 2013).
cite-note-fips-197-33. ↑ mw7a(mw7qmw7gEN) mw7wmw8aAnnouncing the ADVANCED ENCRYPTION STANDARD (AES) (mw8qmw8gPDF), in mw8wFederal Information Processing Standards Publication 197, United States National Institute of Standards and Technology (NIST), 26 novembre 2001. mw9aURL consultato il 2 ottobre 2012 mw9q(archiviato dall'mw9gurl originale il 12 marzo 2017).
cite-note-44. ↑ mw-g(mw-wmw-aEN) Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson, Tadayoshi Kohno e Mike Stay, mw-qmw-gThe Twofish Team's Final Comments on AES Selection (mw-wmwaqaPDF), su mwaqeschneier.com, maggio 2000 mwaqi(mwaqmarchiviato il 2 gennaio 2010).
cite-note-improved-55. ↑ John Kelsey, Stefan Lucks, mwaqkBruce Schneier, Mike Stay, mwaqsDavid Wagner, e Doug Whiting, mwaq0Improved Cryptanalysis of Rijndael, Fast Software Encryption, 2000 pp. 213–230 mwaq8mwaramwareArchived copy, su mwarischneier.com. mwarmURL consultato il 6 marzo 2007 mwarq(mwaruarchiviato il 23 febbraio 2007).
cite-note-66. ↑ mwarkmwaromwarsSean Murphy, su mwarwisg.rhul.ac.uk. mwar0URL consultato il 5 gennaio 2005 mwar4(archiviato dall'mwar8url originale il 31 gennaio 2009).
cite-note-77. ↑ mwasm(mwasqmwasuEN) Alex Biryukov e Dmitry Khovratovich, mwasymwascRelated-key Cryptanalysis of the Full AES-192 and AES-256 (mwasgmwaskPDF), su mwasocryptolux.org, 29 maggio 2009.
cite-note-88. ↑ mwas4(mwas8mwataEN) mwateBruce Schneier, mwatimwatmNew Attack on AES - Schneier on Security, su mwatqwww.schneier.com. mwatuURL consultato il 9 luglio 2024.
Bibliografia
• mwatkNicolas T. Courtois e Josef Pieprzyk, Cryptanalysis of Block Ciphers with Overdefined Systems of Equations, Springer Berlin Heidelberg, 2002, pp. 267-287, ISBN 978-3-540-00171-3.
• mwatsJoan Daemen e Vincent Rijmen, The design of Rijndael: AES - the advanced encryption standard ; with 17 tables, collana Information security and cryptography, Springer, 2002, ISBN 978-3-540-42580-9.
• mwat0Niels Ferguson, John Kelsey e Stefan Lucks, Improved Cryptanalysis of Rijndael, Springer Berlin Heidelberg, pp. 213-230, ISBN 978-3-540-41728-6.
Voci correlate
Altri progetti
Altri progetti
• Wikibooks
• Wikimedia Commons
• Wikibooks contiene testi o manuali sull'Advanced Encryption Standard
• Wikimedia Commons contiene immagini o altri file sull'Advanced Encryption Standard
Collegamenti esterni
• citerefenciclopedia-della-matematicaAES, in Enciclopedia della Matematica, Istituto dell'Enciclopedia Italiana, 2013.
• citerefbritannica-com(EN) Gustavus J. Simmons, AES, su Enciclopedia Britannica, Encyclopædia Britannica, Inc.
• citereffoldoc(EN) Denis Howe, Advanced Encryption Standard, in Free On-line Dictionary of Computing. Disponibile con licenza mwaugGFDL
• mwauoCriptare file e cartelle con AES (Windows), su tributemercury.com. URL consultato il 2 aprile 2012 (archiviato dall'url originale il 19 aprile 2012).
• mwauw(EN) mwau0RFC 3394 - Algoritmo AES KeyWrap
• mwau8(EN) mwavaPronuncia di "Rijndael" (85 KB mwaveWAV file)
• mwavm(EN) Archivio del vecchio sito AES, su csrc.nist.gov. URL consultato il 5 gennaio 2005 (archiviato dall'url originale il 4 dicembre 2002).
• mwavu(EN) mwavyFIPS PUB 197: Documento con le specifiche ufficiali dell'AES (mwavcPDF file)
• mwavk(EN) Lynn Hathaway, National Policy on the Use of the Advanced Encryption Standard (AES) to Protect National Security Systems and National Security Information (PDF), su csrc.nist.gov, giugno 2003. URL consultato il 10 marzo 2011 (archiviato dall'url originale il 6 novembre 2010). Il C.N.S.S. annuncia l'utilizzo dell'AES per i dati classificati
• mwavs(EN) mwavwAnimazione di Rijndael (mwav0SWF file)
Implementazioni
• mwaweImplementazione di riferimento e derivata, su embeddedsw.net.
• mwawmUn JavaScript che calcola l'AES mostrando i valori intermedi, su people.eku.edu.
• mwawuImplementazione per Python, su jclement.ca. URL consultato il 16 dicembre 2008 (archiviato dall'url originale il 21 marzo 2009).
• mwawcImplementazione per JavaScript, su cryptojs.altervista.org.